Methods and systems for generating and presenting content recommendations for new users

ABSTRACT

Systems and methods for generating and presenting content recommendations to new users during or immediately after the onboarding process, before any history of the new user&#39;s viewed content is available. A machine learning or other model may be trained to determine clusters of content genre values corresponding to genres of content watched by viewers. Clusters are thus associated with popular groupings of content genres viewed by many users. Clusters representing popular groupings of content genres may be selected for new users, and content corresponding to the selected clusters may be recommended to the new users as part of their onboarding process. A sufficient amount of content may be selected to fully populate any content recommendation portion of a new user onboarding page

CROSS REFERENCE TO RELATED APPLICATION

This application claims priority to, and the benefit of, IndianProvisional Patent Application No. 202021015651 filed on Apr. 9, 2020,the disclosure of which is hereby incorporated by reference herein inits entirety.

BACKGROUND

Embodiments of the disclosure relate generally to content creationsystems. More specifically, embodiments of the disclosure relate tomethods and systems for generating and presenting contentrecommendations for new users.

SUMMARY

Content providers use computing systems allowing for a certain amount ofability to recommend content to end-users. Such systems attempt totailor recommended content to the interests of the user, to present himor her with content he or she may enjoy. Currently, such systems aresubject to certain limitations, especially for first users. Forinstance, conventional systems typically rely on a known user history ofcontent the user has previously viewed or otherwise been interested in,yet new users to a content provider have little user history or none atall. That is, these systems rely on extrapolating current recommendedcontent from past content for which the user expressed interest.Accordingly, in the case of new users, or users for which no userhistory can be accessed, such systems are unable to generate accuratecontent recommendations. Conventional systems are thus unsuited topopulating new user content recommendation pages with a desired numberof accurate recommendations, in particularly, at cold start.

Thus, to overcome the limited ability of computer based systems to matchusers with effective promotional content, systems and methods aredescribed herein for a computer-based process that selects classes ofcontent for new users, selects content belonging to these classes, andfully populates new user onboarding pages with this selected content. Inthis manner, new users, or users that have little or no contentinteraction history, are provided with onboarding or cold start pages,e.g., content pages shown during or immediately after the new useronboarding process, that are fully populated with recommended content,thus providing improvements to content computing systems and providingbenefits to new users with a full array of content recommendations atcold start.

In more detail, systems of embodiments of the disclosure may selectcontent for recommendation to new users that do not yet have anyassociated content preferences. The systems may then transmitrepresentations of this selected content to display fully populatedonboarding pages for the new users.

Embodiments of the disclosure thus provide fully populated onboardingpages for new users, i.e., pages displayed as part of or immediatelysubsequent to the onboarding process, which display the same number ofcontent recommendations as content recommendations pages of users thatare not new. Thus, for example, the home page of a new user, when firstdisplayed after onboarding, may display the same amount of recommendedcontent as the home page of an existing user.

Content selection for new users may be performed in any manner. In oneembodiment, sets of content preferences, such as accumulated contentpreferences of existing or previous users, are clustered such as via amachine learning model. The determined clusters may thus each representclustered or similar content preferences of users other than new users.A cluster may then be selected, as well as a point, or set of contentpreferences, within the selected cluster, and content can be selectedfor recommendation according to this selected set of contentpreferences. In this manner, content may be selected for recommendationto the new user without knowledge or use of any of his or her contentpreferences.

Clustering may be performed in any manner. One such manner employs amachine learning model such as an expectation maximization (EM) model, ak-means model, or a k-nearest neighbor model, each of which maydetermine clusters or groupings of unlabeled points such as contentpreferences of various users. That is, models may determine boundariesin content preference space within which groupings of content preferencepoints are present, where the boundaries define each cluster.Accordingly, trained models with defined content preference clusters maytake as input the content preferences of a user, and output thecorresponding cluster, i.e., to which cluster a given set of contentpreferences belongs. Conversely, a point within a given cluster may beselected, and the corresponding content preferences may be output. Inthis manner, embodiments of the disclosure contemplate clustersdetermined from known content preferences of previous or existing usersin which use of these clusters to select content recommendations for newusers. Clusters of content preferences are determined, corresponding togroups of content preferences that are preferred by many users. Theseclusters can then be selected for new users, as it is more likely thatnew users will fall into one or more large clusters. Contentcorresponding to these clusters, or specific points within theseclusters, may then be recommended for the new user.

Exemplary machine learning models of embodiments of the disclosure canbe trained with sets of content preferences as input, with clustersdetermined in known manner according to the specific model employed. Anysets of content preferences can be employed. As one example, the contentpreferences may be genres of content preferred by various users.Training sets, made up of content preferences of many different users,may be used in their entirety to train machine learning models ofembodiments of the disclosure. Alternatively, the input set of contentpreferences may be divided into two different subsets, one used fortraining and the other used for testing. The machine learning model maythen be trained on the training subset of content preferences, which canbe tested using the testing subset. Division of the set of contentpreferences may be performed in any manner, such as by randomly orpseudo-randomly selecting content preference entries for each subset,perhaps according to a predetermined number of entries for each subset.As one example, the set of content preferences may be split with 70%allocated for the training subset and the remaining 30% allocated forthe testing subset, with set entries randomly or pseudo-randomlyselected for one subset.

Prior to training, certain entries may be removed from the trainingsubset. In particular, popular users, or users who most frequently viewcontent, have the most well-known behavior. Accordingly, their contentwatching behavior should theoretically follow the cluster space. Thatis, they are good indicators of whether the clusters have been correctlydetermined. Entries for these popular users may thus be removed from thetraining subset and placed in the testing subset for verification of themachine learning model.

Embodiments of the disclosure also contemplate systems that adapt to thebehavior of the user as he or she views content. For example, the user'spoint in the content space of a machine learning model described abovemay be adjusted according to the user's content preferences, asrepresented by his or her viewed content. Indications of various contentinteractions may be received, such as content views or likes, contentviewed for more than some predetermined amount of time, mentions ofcontent, or the like. Content preferences or history may then bedetermined from these interactions. For instance, preferred genres forthe user may be shifted toward genres of content the user has recentlyviewed or liked, or, in other examples, shifted away from genres ofcontent the user has recently disliked. Content may then be selectedaccording to the revised set of preferred genres. The content selectedmay differ from previously selected content recommendations, as theunderlying genre preferences of the user may have changed according tohis or her behavior. Representations of the new content recommendationselections may then be transmitted for display to the user.

In further embodiments of the disclosure, an indication of a new usermay be received, and one or more classes may be determined for this newuser, where each user class may correspond to multiple contentpreferences. Content may then be selected according to these userclasses, whereupon representations of this selected content can betransmitted for display as a fully populated content recommendationsportion of an onboarding page. Thus, classes may be selected for newusers, and content recommendations may be determined from these classes.The classes may, in one or more embodiments, be content genres, so thatcontent may be selected according to genres determined to correspond tothe new user. Classes may be selected according to one or more machinelearning models, as above.

BRIEF DESCRIPTION OF THE FIGURES

The above and other objects and advantages of the disclosure will beapparent upon consideration of the following detailed description, takenin conjunction with the accompanying drawings, in which like referencecharacters refer to like parts throughout, and in which:

FIG. 1 illustrates exemplary operation of a system for generating andpresenting content recommendations to new users, in accordance withembodiments of the disclosure;

FIG. 2 illustrates an exemplary process for generating and presentingcontent recommendations to new users, in accordance with embodiments ofthe disclosure;

FIG. 3 illustrates further detail of training processes for machinelearning operations of embodiments of the disclosure;

FIG. 4 is a table of exemplary genres used in machine learningoperations in accordance with embodiments of the disclosure;

FIG. 5 is a block diagram of an illustrative device for generating andpresenting content recommendations to new users, in accordance withembodiments of the disclosure;

FIG. 6 is a block diagram of an illustrative system for generating andpresenting content recommendations to new users, in accordance withembodiments of the disclosure;

FIG. 7 is a flowchart of an illustrative process for generating andpresenting content recommendations to new users, in accordance withembodiments of the disclosure;

FIG. 8 is a flowchart illustrating further details of exemplary contentselection processes, in accordance with embodiments of the disclosure;

FIG. 9 is a flowchart illustrating further details of training ofmachine learning models, in accordance with embodiments of thedisclosure;

FIG. 10 is a flowchart illustrating an illustrative process for adaptiveprovision of content recommendations, in accordance with embodiments ofthe disclosure; and

FIG. 11 is a flowchart of an illustrative process for generating andpresenting content recommendations to new users, in accordance withfurther embodiments of the disclosure.

DETAILED DESCRIPTION

Exemplary embodiments are disclosed of systems and methods forgenerating and presenting content recommendations to new users during orimmediately after the onboarding process, before any history of the newuser's viewed content is available. A machine learning or other model istrained to determine clusters of content genre values corresponding togenres of content watched by viewers. Clusters are thus associated withpopular groupings of content genres viewed by many users. Clustersrepresenting popular groupings of content genres may be selected for newusers, and content corresponding to the selected clusters may berecommended to the new users as part of their onboarding process.Sufficient amount of content may be selected to fully populate anycontent recommendation portion of a new user onboarding page.

FIG. 1 illustrates exemplary operation of a system for generating andpresenting content recommendations to new users, in accordance withembodiments of the disclosure. Here, a user may sign up for a contentdelivery or display service which allows them to select and view variouselectronic content through an interface displayed on an electronicdisplay 100. The new user may go through an onboarding process, duringwhich he or she typically subscribes to the service through an interfacedisplayed on display 100, and registers by, e.g., creating a useridentification. At or shortly before conclusion of the onboardingprocess, an onboarding page may be displayed for the new user, anexample of which is shown within display 100. A portion of thisonboarding page, e.g., the top row of the onboarding page displayed bydisplay 100, shows recommended content for the new user. Systems ofembodiments of the disclosure select sufficient number of pieces ofcontent to fully populate the recommendation section, e.g., to populatethe entire Recommended for You row, or at least the entire portion ofthat row which is shown on display 100. Recommended content isdetermined even though the system does not yet have any information onthe preferences of the new user, e.g., the system does not have accessto any viewing history or information on preferred content genres of thenew user.

Embodiments of the disclosure contemplate generation of fully-populatednew user onboarding pages in any manner. FIG. 2 illustrates one suchexemplary process for generating and presenting content recommendationsto new users, in accordance with embodiments of the disclosure. Here, amachine learning model 200 is trained to output a set of content genresor other content classifications from input new user classifications. Inparticular, the machine learning model 200 may be a clustering modeltrained to identify clusters or ranges of content genres that arehistorically popular with past users, i.e., clusters of points in ahyperspace of content genres, where each point represents a set ofcontent genres preferred by a current or previous user.

In this manner, the machine learning model 200 may take as input a pointin a cluster, or point in the content genre hyperspace, and output thegenre values corresponding to that point. These genre values may then beinput to a recommendation engine 210, which may be any program orprocess for selecting content recommendations from an input set ofpreferred genres. That is, the recommendation engine 210 identifies,from an input set of genres, content corresponding to those genres. Therecommendation engine 210 thus outputs a set of recommended content forthe genres output by machine learning model 200, where the set ofrecommended content includes sufficient recommended content to fullypopulate or fill a recommended content section of a new user onboardingpage, e.g., the Recommended for You row of the onboarding page shown ondisplay 100 of FIG. 1.

As above, machine learning model 200 may be any clustering model trainedto identify clusters or ranges of content genres. For example, the model200 may be an expectation maximization (EM) model, a k-means model, or ak-nearest neighbor (k-NN) model which may be trained to determineclusters of points in any hyperspace, e.g., a hyperspace of variablesthat each represent values of a different content genre. Thus, forinstance, variables used may include each of the genres listed in FIG. 4as described further below. The model 200 may be trained on a data setthat includes known genre preference values for any number of users.This information may be compiled by, for example, keeping track ofcontent interactions of existing users of the content delivery service,and assigning values to the genre preferences determined therefrom.Genre values may be determined in any manner, such as by assigninggenres to each piece of content and incrementing each preference valueby a predetermined amount when the corresponding user views or likescontent having that genre. Preference values may be normalized so thatgenre values for each user have a uniform scale.

The model 200 may then be trained on the input data set ofexisting/previous user genre preference values, to determine theboundaries of clusters of genre preferences. In some embodiments, modelssuch as k-NN models may define boundaries in deterministic manner, whilein other embodiments, models such as EM models may define clusterboundaries in probabilistic manner, so that given genre hyperspacepoints may belong to more than one cluster.

In either case, when a new user is detected, a point in the model 200hyperspace may be selected for him or her. Embodiments of the disclosurecontemplate selection of a hyperspace point in any manner, such as byselecting a particular cluster (e.g., the largest cluster, representingthe most popular groupings of genres) and then selecting a point withinthat cluster, such as the cluster centroid, a random point within thecluster. Alternatively, a hyperspace point may be selected by picking apoint randomly or pseudorandomly, by selecting a cluster at random, byselecting a cluster that is close to or at a center of a number of otherclusters, or the like. Points may be picked from selected clusters inany manner, such as by selecting a cluster centroid, picking a point atrandom or pseudorandom, or the like.

The selected point in the genre hyperspace corresponds to a set ofvalues for each genre. Recommendation engine 210 may then select contentfor recommendation, according to those genre values. More specifically,recommendation engine 210 may match these genre values withpredetermined genre values of content offered by the content service,with the closest matches selected for recommendation to the new user.Matching may be performed in any manner, such as by a least sum ofdifferences between genre values, or the like. Recommended content, orrepresentations thereof, may then be transmitted to the new user as partof the onboarding process.

FIG. 3 illustrates further detail of training processes for machinelearning models of embodiments of the disclosure. In particular, FIG. 3illustrates further detail of training of machine learning model 200 ofFIG. 2. More specifically, a machine learning model 300, whichcorresponds to machine learning model 200 and may be any machinelearning model suitable for determining classifications for values ofmultiple variables, is configured with various content genres as itsvariables. The machine learning model 300 thus may be considered tomodel points in a content genre hyperspace. Model 300 may be trained byinput of a data set that includes values of the various content genrevariables for many different past users. That is, values correspondingto the content preferences of existing or past users may be entered intomodel 300, and the model 300 may be trained to determine the boundariesin its genre hyperspace of various clusters or groupings of users thathave similar content preferences, shown in FIG. 3 as classificationboundaries or boundaries in the content genre hyperspace used by machinelearning model 300 which have been determined through training of model300. Such training processes are known, and embodiments of thedisclosure contemplate use of any suitable training process for anysuitable classification model.

Any genres may be employed as the variables used by machine learningmodels of embodiments of the disclosure. FIG. 4 is a table 400 of onesuch set of exemplary genres used in machine learning operations inaccordance with embodiments of the disclosure. Here, genres listed intable 400 may be the variables used by machine learning models ofembodiments of the disclosure, with code values for each genre being anumber arbitrarily assigned to each variable as an identifier thereof.Accordingly, a data point for each user may be a set of values for eachgenre listed in table 400, where values correspond to the degree ofpreference a particular user has for that genre. Thus, for example, auser who has a history of viewing action/adventure content may havehigher values of variables 1 and 2, and lower values for the remainingvariables 3-13, while a user with young children may have higher valuesof variables 8, 9, and 11 and lower values for other variables. It isnoted that the variables, or genres, listed in table 400 are exemplary,and embodiments of the disclosure contemplate use of any alternativevariables capable of characterizing user preferences for electroniccontent in any manner.

In some embodiments, the methods and systems described in connectionwith FIGS. 1-4 utilize a device to perform selection of recommendedcontent for new users. FIG. 5 is a block diagram of an illustrativedevice 500, in accordance with some embodiments of the presentdisclosure. As referred to herein, device 500 should be understood tomean any device that can perform selection of new user contentrecommendations. As depicted, device 500 may be a smartphone or tablet,or may additionally be a personal computer or television equipment. Insome embodiments, device 500 may be an augmented reality (AR) or virtualreality (VR) headset, smart speakers, or any other device capable ofdetermining and outputting an indication of matched promotional content.

Device 500 may receive content and data via input/output (hereinafter“I/O”) path 502. I/O path 502 may provide content (e.g., broadcastprogramming, on-demand programming, Internet content, content availableover a local area network (LAN) or wide area network (WAN), and/or othercontent) and data to control circuitry 504, which includes processingcircuitry 506 and storage 508. Control circuitry 504 may be used to sendand receive commands, requests, and other suitable data using I/O path502. I/O path 502 may connect control circuitry 504 (and specificallyprocessing circuitry 506) to one or more communications paths (describedbelow). I/O functions may be provided by one or more of thesecommunications paths, but are shown as a single path in FIG. 5 to avoidovercomplicating the drawing.

Control circuitry 504 may be based on any suitable processing circuitrysuch as processing circuitry 506. As referred to herein, processingcircuitry should be understood to mean circuitry based on one or moremicroprocessors, microcontrollers, digital signal processors,programmable logic devices, field-programmable gate arrays (FPGAs),application-specific integrated circuits (ASICs), etc., and may includea multi-core processor (e.g., dual-core, quad-core, hexa-core, or anysuitable number of cores) or supercomputer. In some embodiments,processing circuitry may be distributed across multiple separateprocessors or processing units, for example, multiple of the same typeof processing units (e.g., two Intel Core i7 processors) or multipledifferent processors (e.g., an Intel Core i5 processor and an Intel Corei7 processor). In some embodiments, control circuitry 504 executesinstructions for executing one or more of the machine learning model 200and recommendation engine 210, i.e., for determining content genres fora new user, determining recommended content therefrom, and fullypopulating onboarding pages with representations of the recommendedcontent.

An application on a device may be a stand-alone application implementedon a device or a server. The application may be implemented as softwareor a set of executable instructions. The instructions for performing anyof the embodiments discussed herein of the application may be encoded onnon-transitory computer-readable media (e.g., a hard drive,random-access memory on a DRAM integrated circuit, read-only memory on aBLU-RAY disk, etc.) or transitory computer-readable media (e.g.,propagating signals carrying data and/or instructions). For example, inFIG. 5 the instructions may be stored in storage 508, which can beexecuted by control circuitry 504 of device 500.

In some embodiments, an application may be a client-server applicationwhere only the client application resides on device 500 (e.g., device602), and a server application resides on an external server (e.g.,server 606). For example, an application may be implemented partially asa client application on control circuitry 504 of device 500 andpartially on server 606 as a server application running on controlcircuitry. Server 606 may be a part of a local area network with device602, and, in other examples, may be part of a cloud computingenvironment accessed via the Internet. In a cloud computing environment,various types of computing services for performing searches on theInternet or informational databases, gathering information for a display(e.g., information for providing deep recommendations for display), orparsing data are provided by a collection of network-accessiblecomputing and storage resources (e.g., server 606), referred to as “thecloud.” Device 500 may be cloud clients that rely on the cloud computingcapabilities from server 606 to gather data to populate an application.When executed by control circuitry of server 606, the system mayinstruct the control circuitry to provide content matching on device602. The client application may instruct control circuitry of thereceiving device 602 to provide matched promotional content.Alternatively, device 602 may perform all computations locally viacontrol circuitry 504 without relying on server 606.

Control circuitry 504 may include communications circuitry suitable forcommunicating with a content server or other networks or servers. Theinstructions for carrying out the above-mentioned functionality may bestored and executed on server 606. Communications circuitry may includea cable modem, a wireless modem for communications with other equipment,or any other suitable communications circuitry. Such communications mayinvolve the Internet or any other suitable communication network orpaths. In addition, communications circuitry may include circuitry thatenables peer-to-peer communication of devices, or communication ofdevices in locations remote from each other.

Memory may be an electronic storage device provided as storage 508 thatis part of control circuitry 504. As referred to herein, the phrase“electronic storage device” or “storage device” should be understood tomean any device for storing electronic data, computer software, orfirmware, such as random-access memory, read-only memory, hard drives,optical drives, solid state devices, quantum storage devices, gamingconsoles, or any other suitable fixed or removable storage devices,and/or any combination of the same. Nonvolatile memory may also be used(e.g., to launch a boot-up routine and other instructions). Cloud-basedstorage (e.g., on server 606) may be used to supplement storage 508 orinstead of storage 508.

Control circuitry 504 may include display generating circuitry andtuning circuitry, such as one or more analog tuners, one or more MP3decoders or other digital decoding circuitry, or any other suitabletuning or audio circuits or combinations of such circuits. Encodingcircuitry (e.g., for converting over-the-air, analog, or digital signalsto audio signals for storage) may also be provided. Control circuitry504 may also include scaler circuitry for upconverting anddownconverting content into the preferred output format of the device500. Circuitry 504 may also include digital-to-analog convertercircuitry and analog-to-digital converter circuitry for convertingbetween digital and analog signals. The tuning and encoding circuitrymay be used by the device to receive and to display, to play, or torecord content. The tuning and encoding circuitry may also be used toreceive guidance data. The circuitry described herein, including forexample, the tuning, audio generating, encoding, decoding, encrypting,decrypting, scaler, and analog/digital circuitry, may be implementedusing software running on one or more general purpose or specializedprocessors. Multiple tuners may be provided to handle simultaneoustuning functions. If storage 508 is provided as a separate device fromdevice 500, the tuning and encoding circuitry (including multipletuners) may be associated with storage 508.

A user may send instructions to control circuitry 504 using user inputinterface 510 of device 500. User input interface 510 may be anysuitable user interface touch-screen, touchpad, stylus and may beresponsive to external device add-ons such as a remote control, mouse,trackball, keypad, keyboard, joystick, voice recognition interface, orother user input interfaces. User input interface 510 may be atouchscreen or touch-sensitive display. In such circumstances, userinput interface 510 may be integrated with or combined with display 512.Display 512 may be one or more of a monitor, a television, a liquidcrystal display (LCD) for a mobile device, amorphous silicon display,low temperature poly silicon display, electronic ink display,electrophoretic display, active matrix display, electro-wetting display,electro-fluidic display, cathode ray tube display, light-emitting diodedisplay, electroluminescent display, plasma display panel,high-performance addressing display, thin-film transistor display,organic light-emitting diode display, surface-conductionelectron-emitter display (SED), laser television, carbon nanotubes,quantum dot display, interferometric modulator display, or any othersuitable equipment for displaying visual images. A video card orgraphics card may generate the output to the display 512. Speakers 514may be provided as integrated with other elements of device 500 or maybe stand-alone units. Display 512 may be used to display visual contentwhile audio content may be played through speakers 514. In someembodiments, the audio may be distributed to a receiver (not shown),which processes and outputs the audio via speakers 514.

Control circuitry 504 may allow a user to provide user profileinformation or may automatically compile user profile information. Forexample, control circuitry 504 may track user preferences for differentgenres of content. In some embodiments, control circuitry 504 monitorsuser inputs, such as queries, texts, calls, conversation audio, socialmedia posts, etc., to detect user preferences. Control circuitry 504 maystore the user preferences in the user profile. Additionally, controlcircuitry 504 may obtain all or part of other user profiles that arerelated to a particular user (e.g., via social media networks), and/orobtain information about the user from other sources that controlcircuitry 504 may access. As a result, a user can be provided withreal-time matched promotional content.

Device 500 of FIG. 5 can be implemented in system 600 of FIG. 6 asdevice 602. Devices from which matched promotional content may be outputmay function as a standalone device or may be part of a network ofdevices. Various network configurations of devices may be a smartphoneor tablet, or may additionally be a personal computer or televisionequipment. In some embodiments, device 602 may be an augmented reality(AR) or virtual reality (VR) headset, smart speakers, or any otherdevice capable of outputting matched promotional content to a user.

In system 600, there may be multiple devices but only one of each typeis shown in FIG. 6 to avoid overcomplicating the drawing. In addition,each user may utilize more than one type of device and also more thanone of each type of device.

As depicted in FIG. 6, device 602 may be coupled to communicationnetwork 604. Communication network 604 may be one or more networksincluding the Internet, a mobile phone network, mobile voice or datanetwork (e.g., a 4G or LTE network), cable network, public switchedtelephone network, Bluetooth, or other types of communications networkor combinations of communication network. Thus, device 602 maycommunicate with server 606 over communication network 604 viacommunications circuitry described above. Server 606 may store andexecute instruction modules for implementing one or both of machinelearning model 200 and recommendation engine 210, to perform processesof embodiments of the disclosure. Server 606 may also store (via a knownstorage device such as or similar to storage 508) and executeinstruction modules for training model 200, as described further below.In this manner, server 606 may detect new users, perform operations tocarry out processes of embodiments of the disclosure to recommendcontent to new users, and to transmit content representations to device602 in order to generate fully populated onboarding pages for new users.It should be noted that there may be more than one server 606, but onlyone is shown in FIG. 6 to avoid overcomplicating the drawing. The arrowsconnecting the respective device(s) and server(s) representcommunication paths, which may include a satellite path, a fiber-opticpath, a cable path, a path that supports Internet communications (e.g.,IPTV), free-space connections (e.g., for broadcast or other wirelesssignals), or any other suitable wired or wireless communications path orcombination of such paths. Further details of the present disclosure arediscussed below in connection with the flowcharts of FIGS. 7-11. Itshould be noted that the steps of processes of each of FIGS. 7-11,respectively, may be performed by control circuitry 504 of FIG. 5.

In operation, processes of embodiments of the disclosure may be executedby any of the computing devices of FIG. 6. As one example, suchprocesses may be executed by one or more of device 602 or server 606.More specifically, either of device 602 or server 606 may store andexecute instruction modules implementing one or more of machine learningmodel 200 and recommendation engine 210.

FIG. 7 is a flowchart of an illustrative process for generating andpresenting content recommendations to new users, in accordance withembodiments of the disclosure. Initially, device 602 may execute anddisplay an onboarding interface for its user, to carry out an onboardingprocess to subscribe the user to a content delivery service. As part ofthis process, device 602 may transmit onboarding data to server 606,indicating a new user subscription (Step 700). As this user is a newuser, server 606 does not yet have a record of this user's contentpreferences. Server 606 may then implement machine learning model 200and recommendation engine 210, to select content for recommendation tothe new user (Step 710) as in FIG. 2. The server 606 may then transmitrepresentations of this selected content, such as thumbnail images ofthe selected content, for display by device 602 (Step 720) during orupon completion of the onboarding process, as a set of contentrecommendations for the new user. In particular, the representations ofrecommended content may be arranged to fully populate the recommendedcontent portion of an onboarding page meant for the new user. That is,the number of representations of recommended content may be equal to thenumber of representations allocated in the onboarding page forrecommended content. In some embodiments, the number of representationsallocated may be the same as the number of representations allocated incontent recommendation pages, or sections thereof, of non-new users.That is, systems of embodiments of the disclosure may determine at leastthe same number of content recommendations for new users as isdetermined for non-new users.

FIG. 8 is a flowchart illustrating further details of exemplary contentselection processes, in accordance with embodiments of the disclosure.That is, FIG. 8 illustrates further details of Step 710 above,describing how recommended content may be selected for a new user.Initially, server 606 or another device may select a cluster of contentpreferences, the cluster being a region in the genre hyperspace used bymachine learning model 200 (Step 800). As above, the server 606 mayselect a particular cluster such as the largest cluster, a most centralcluster, a cluster having the largest number of recent entries, or thelike.

Once a cluster is selected, a set of content preferences within theselected cluster may be picked (Step 810). That is, a hyperspace pointwithin the selected cluster may be picked as the set of genre values tobe used for content recommendation to the new user. Recommendationengine (as implemented by, e.g., server 606) may then select contentaccording to the selected genre values (Step 820). In this manner, thedetermined genre values may act as user content preferences fordetermining recommendations of content to the new user. As above, server606 may implement recommendation engine 210 to select recommendedcontent from an input set of genre values or genre preferences. Inparticular, recommendation engine 210 may select content having the sameor similar genre scores as recommended content. Embodiments of thedisclosure contemplate selection of recommended content in any manner,such as by any measure of similarity of genre scores, any machinelearning-based matching of genre values to content, or the like.

Embodiments of the disclosure also contemplate training of machinelearning model 200 in any manner. FIG. 9 is a flowchart illustratingfurther details of training of machine learning models, in accordancewith embodiments of the disclosure. Initially, in some embodiments, aset of content preferences may be compiled, where each member of the setis a set of values for each genre listed in FIG. 4. Each member of theset may represent the genre values corresponding to, e.g., contentpreferences of a past or existing user of the content delivery service.That is, machine learning model 200 may be trained on the contentpreferences of prior users, and the behavior of these prior users may beextrapolated to new users. As in many machine learning applications, atleast some embodiments of the disclosure contemplate a large set ofcontent preferences for use in training machine learning model 200.

The set of content preferences, or genre values, may be divided into twosubsets, which may be referred to as first and second subsets (Step900). Division into subsets may be performed in any manner, such as byrandom or pseudorandom selection of set members for placement in eitherthe first or second subset. The subsets may also be of any suitablesize. For example, each subset may be half the size of the set ofcontent preferences, the first and second subsets may comprise 70% and30% respectively of the set of content preferences, or the like. Eachsubset may be any proportion of the set of content preferences.

The first subset may be used to train the machine learning model 200,while the second subset may be used to test the model 200. In someembodiments, the first or training subset may be larger than the secondor testing subset.

Once the training and testing subsets are determined, certain setelements may optionally be removed from the training subset. Inparticular, set elements corresponding to popular users may be removedfrom the training subset. Content preferences of popular users, or usersthat have viewed a significant amount of content, may be expected tofollow the cluster space, i.e., fall within one or more definedclusters, as their behavior is well-known. Accordingly, contentpreferences of popular users may be removed from the training set andoptionally added to the testing set to verify the trained model, astheir content preference information should fall within one or moreclusters.

Popular users may be identified according to any criteria. As oneexample, users may be considered popular users if they have viewed,rated, or otherwise interacted with greater than some predeterminednumber of content items, where this predetermined number may be anyvalue. For instance, users may be considered popular users if server 606has a record of their interactions with greater than 5, 10, 20, or 50content items. Embodiments of the disclosure further contemplateadditional criteria for qualifying as a popular user. For instance,

The machine learning model 200 may then be trained using the trainingsubset (Step 910). As above, machine learning model 200 may be any oneor more machine learning models suitable for clustering points in ahyperspace of content preferences, including an expectation maximization(EM) model, a k-means model, or a k-nearest neighbor model. Training ofsuch models is known, and embodiments of the disclosure encompass anysuitable training method or process for any such model(s).

Once machine learning model 200 is trained, server 606 may carry outtesting of the trained model 200 (Step 920). Content preferences of thetesting subset are input to trained model 200 and their correspondingclusters are determined. As above, this may include content preferencesof popular users whose data points have been removed from the trainingsubset, to verify that the model 200 is accurate for popular users. Oncemodel 200 is verified in this manner, it may then be used in selectionof recommended content for new users according to embodiments of thedisclosure.

Once content is recommended for the new user such as via a fullypopulated onboarding page, embodiments of the disclosure contemplateadjustment or refinement of content recommendations as the new userbegins to view content. That is, systems of embodiments of thedisclosure may adapt to the new user's content viewing behavior,revising their content recommendations as more information on the newuser's preferences becomes available. FIG. 10 is a flowchartillustrating an illustrative process for adaptive provision of contentrecommendations, in accordance with embodiments of the disclosure. Here,server 606 first receives an indication of one or more contentinteractions performed by the new user on his or her device 602 (Step1000). Such interactions may be any interactions with any contentprovided by the service to which the new user has subscribed, includingviewings of content, likes or recommendations of content, dislikes ornegative recommendations, viewings of content for greater than somepredetermined duration, or the like. Interactions may be detected byeither the device 602 or by the server 606, with the device 602transmitting indicators of any detected interactions to server 606.

The server 606 then determines revised content preferences of the newuser from these received or detected content interactions (Step 1010).Revised content preferences may be determined responsive to detectedcontent interactions in any suitable manner. For example, the contentgenre values determined for the new user at Step 810 of FIG. 8 may berevised according to the detected content interactions. Revision may beperformed in any suitable manner, such as by increasing those currentgenre values that correspond to the genres of content viewed or liked,decreasing the remaining genre values, or decreasing genre values thatcorrespond to genres of content disliked or negatively reviewed, or thelike. Revision of content genre values may be performed in any mannerand by any amounts suitable for adapting genre preferences to new usersas their viewing habits become known.

The server 606 then selects a revised set of content according to therevised content genre values (Step 1020), by applying as input torecommendation engine 210 the revised content genre values, andreceiving as output therefrom a new set of recommended content thatreflects the new user's content-related behavior. The server 606 thentransmits representations of this new set of recommended content fordisplay on device 602 as content recommendations to the user (Step1030). By repeating Steps 1000-1020 as new indications of contentinteractions are received, embodiments of the disclosure provide anadaptive system that continually adjusts its content recommendations tousers according to their ongoing content interaction behavior.

FIG. 11 is a flowchart of an illustrative process for generating andpresenting content recommendations to new users, in accordance withfurther embodiments of the disclosure. Initially, server 606 receives anindication of a new user (Step 1100), which as above may be receivedduring the course of a new user onboarding process carried out by device602 or server 606. The server 606 may then determine one or more userclasses for the new user, where these user classes correspond to contentpreferences (Step 1110). In some embodiments of the disclosure, theseuser classes may correspond to identifications of clusters determined bymachine learning model 200.

Server 606 then selects content corresponding to content preferences ofthese user classes (Step 1120). As above, a point within user classes orclusters may be picked, such as by selecting a centroid or hyperspacecenter of the class or cluster, selecting a random point within theclass/cluster, or in any other manner. The genre values corresponding tothe selected hyperspace point are then determined, and used byrecommendation engine 210 to select recommended content. Representationsof this selected content are then transmitted for display by device 602in a fully populated content recommendations portion of an onboardingpage (Step 1130).

The foregoing description, for purposes of explanation, used specificnomenclature to provide a thorough understanding of the disclosure.However, it will be apparent to one skilled in the art that the specificdetails are not required to practice the methods and systems of thedisclosure. Thus, the foregoing descriptions of specific embodiments ofthe present invention are presented for purposes of illustration anddescription. They are not intended to be exhaustive or to limit theinvention to the precise forms disclosed. Many modifications andvariations are possible in view of the above teachings. For example,content recommendations can be selected via any suitable machinelearning model or any other mechanism, and may be selected according tocontent genres or any other characterizations of content. Theembodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the methods and systemsof the disclosure and various embodiments with various modifications asare suited to the particular use contemplated. Additionally, differentfeatures of the various embodiments, disclosed or otherwise, can bemixed and matched or otherwise combined so as to create furtherembodiments contemplated by the disclosure.

1. A computer-implemented method of recommending content to users in theabsence of stored content preferences, the method comprising:determining that a profile of a user does not have content preferences;using a machine learning model, selecting a cluster of contentpreferences, wherein the machine learning model is trained to produce anoutput of a cluster of content preferences based on inputs comprisingcontent preferences of other users; selecting a set of contentpreferences within the selected cluster of content preferences;selecting content for recommendation to the user according to the selectset of content preferences; and transmitting representations of theselected content for display as content recommendations for the user. 2.The method of claim 1, wherein: the selected content is displayed as afirst content recommendations page displaying a first number ofrepresentations of content; and the first number of representations isequal to a second number of representations of a second contentrecommendations page for a user other than the new user.
 3. (canceled)4. The method of claim 1, wherein the selecting a cluster of contentpreferences further comprises selecting the cluster of contentpreferences without using content preferences of the new user. 5.(canceled)
 6. The method of claim 1, wherein the machine learning modelis one or more of an expectation maximization (EM) model, a k-meansmodel, or a k-nearest neighbor model.
 7. The method of claim 1, furthercomprising: for a set of the content preferences, dividing the set intoa first subset of the content preferences and a second subset of thecontent preferences; training the machine learning model using the firstsubset of the content preferences; and testing the machine learningmodel using the second subset of the content preferences.
 8. The methodof claim 7, wherein the dividing further comprises randomly orpseudorandomly dividing the set into the first subset and the secondsubset.
 9. The method of claim 7, further comprising, prior to thetraining, removing from the first subset ones of the content preferencescorresponding to users having a highest number of ratings of content.10. The method of claim 1, wherein the selected content is a first setof content, the method further comprising: receiving an indication ofone or more content interactions performed by the user; determiningcontent preferences of the user from the one or more contentinteractions; selecting a second set of content according to thedetermined content preferences, the second set of content beingdifferent at least in part from the first set of content; andtransmitting representations of the second set of content for display ascontent recommendations to the new user.
 11. The method of claim 1,wherein the content preferences comprise preferences for one or morecontent genres.
 12. The method of claim 1, wherein the selected contentis displayed as a page displayed during or immediately after anonboarding process for the new user.
 13. A system for recommendingcontent to users in the absence of stored content preferences, thesystem comprising: a storage device; and control circuitry configuredto: determine that a profile of a user does not have contentpreferences; using a machine learning model, select a cluster of contentpreferences, wherein the machine learning model is trained to produce anoutput of a cluster of content preferences based on inputs comprisingcontent preferences of other users; select a set of content preferenceswithin the selected cluster of content preferences; select content forrecommendation to the user according to the select set of contentpreferences; and transmit representations of the selected content fordisplay as content recommendations for the user.
 14. The system of claim13, wherein: the selected content is displayed as a first contentrecommendations page displaying a first number of representations ofcontent; and the first number of representations is equal to a secondnumber of representations of a second content recommendations page for auser other than the new user.
 15. (canceled)
 16. The system of claim 13,wherein the selecting a cluster of content preferences further comprisesselecting the cluster of content preferences without using contentpreferences of the new user.
 17. (canceled)
 18. The system of claim 13,wherein the machine learning model is one or more of an expectationmaximization (EM) model, a k-means model, or a k-nearest neighbor model.19. The system of claim 13, wherein the control circuitry is furtherconfigured to: for a set of the content preferences, divide the set intoa first subset of the content preferences and a second subset of thecontent preferences; train the machine learning model using the firstsubset of the content preferences; and test the machine learning modelusing the second subset of the content preferences.
 20. The system ofclaim 19, wherein the dividing further comprises randomly orpseudorandomly dividing the set into the first subset and the secondsubset.
 21. The system of claim 19, wherein the control circuitry isfurther configured to, prior to the training, remove from the firstsubset ones of the content preferences corresponding to users having ahighest number of ratings of content.
 22. The system of claim 13,wherein the selected content is a first set of content, and wherein thecontrol circuitry is further configured to: receive an indication of oneor more content interactions performed by the user; determine contentpreferences of the user from the one or more content interactions;select a second set of content according to the determined contentpreferences, the second set of content being different at least in partfrom the first set of content; and transmit representations of thesecond set of content for display as content recommendations to the newuser.
 23. The system of claim 13, wherein the content preferencescomprise preferences for one or more content genres.
 24. The system ofclaim 13, wherein the selected content is displayed as a page displayedduring or immediately after an onboarding process for the new user.25-36. (canceled)